package zy.blue7.gui.netty.custom;

/**
 * @Author: blue7
 * @Date: 2022/2/27 10:12
 * @Version 1.0
 * @Description
 */

import lombok.Builder;

/**
 *
 * 一般而言，我们制定的协议需要两个部分：
 *
 *     Header : 协议头部，放置一些Meta信息。
 *     Content : 应用之间交互的信息主体。
 *
 *
 *     | Version | Content-Length | SessionId | Content |
 *
 * 其中Version,Content-Length,SessionId就是Header信息，Content就是交互的主体。给这个协议起一个名字叫做Blue7,依照luck协议，我们构建一个类。
 *
 * 消息头部
 */
@Builder
public class Blue7Header {

    /**
     * 协议版本
     */
    private Integer version;

    /**
     * 内容长度
     */
    private Integer contentLength;

    /**
     * 服务名称
     */
    private String sessionId;

    public Blue7Header(Integer version, Integer contentLength, String sessionId) {
        this.version = version;
        this.contentLength = contentLength;
        this.sessionId = sessionId;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Integer getContentLength() {
        return contentLength;
    }

    public void setContentLength(Integer contentLength) {
        this.contentLength = contentLength;
    }

    public String getSessionId() {
        return sessionId;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    @Override
    public String toString() {
        return "Blue7Header{" +
                "version=" + version +
                ", contentLength=" + contentLength +
                ", sessionId='" + sessionId + '\'' +
                '}';
    }
}
